package com.cloud.form.api.service;

import java.util.List;
import java.util.Map;

import com.cloud.form.api.bean.FormRepositoryCriteria;
import com.cloud.form.api.entity.FormDef;
import com.cloud.form.api.entity.RepoFormAssemblyInst;
import com.cloud.form.api.entity.RepoFormDef;
import com.github.pagehelper.PageInfo;

public interface FormRepositoryService {

	/**
	 * 推送本地表单到表单仓库
	 * 
	 * @param formId
	 */
	void pushForm(long formId);

	/**
	 * 从仓库拉取表单到本地
	 * 
	 * @param formId
	 */
	void pullForm(FormDef formDef, Long repoFormId);

	/**
	 * 分页获取表单仓库表单信息
	 * @return
	 */
	PageInfo<RepoFormDef> listFormPage(FormRepositoryCriteria criteria);
	
	/**
	 * 从仓库中移除表单信息
	 * @param repoFormId
	 */
	void delete(Long repoFormId);
	
	/**
	 * 仓库文书详情
	 * @param id
	 * @return
	 */
	List<RepoFormAssemblyInst> listAssemblies(Long id);
	
	/**
	 * 获取输出文书
	 * @param id
	 * @return
	 */
	Map<String, String> loadPrintForm(Long id);

}
